package com.zhixing.order.domain.dto;

import jakarta.validation.constraints.*;
import lombok.Data;

import java.math.BigDecimal;

@Data
public class OrderLocationDTO {

    /**
     * 手机号
     * @example 13312341234
     */
    @NotEmpty(message = "手机号不能为空")
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
    private String phone;

    /**
     * 城市代码
     * @example 1100
     */
    @NotEmpty(message = "城市代码不能为空")
    @Pattern(regexp = "^\\d{4}$", message = "城市代码格式不正确")
    private String cityCode;

    /**
     * 起点
     * @example 天安门南门
     */
    @NotBlank(message = "起点不能为空")
    private String startLocation;

    /**
     * 终点
     * @example 丰台站北门
     */
    @NotBlank(message = "终点不能为空")
    private String endLocation;

    /**
     * 起点经度
     * @example 116.397477
     */
    @NotNull(message = "起点经度不能为空")
    @DecimalMin(value = "-180", message = "经度不能小于-180")
    @DecimalMax(value = "180", message = "经度不能大于180")
    private BigDecimal startLongitude;

    /**
     * 起点纬度
     * @example 39.908692
     */
    @NotNull(message = "起点纬度不能为空")
    @DecimalMin(value = "-90", message = "纬度不能小于-90")
    @DecimalMax(value = "90", message = "纬度不能大于90")
    private BigDecimal startLatitude;

    /**
     * 终点经度
     * @example 116.497477
     */
    @NotNull(message = "终点经度不能为空")
    @DecimalMin(value = "-180", message = "经度不能小于-180")
    @DecimalMax(value = "180", message = "经度不能大于180")
    private BigDecimal endLongitude;

    /**
     * 终点纬度
     * @example 39.808692
     */
    @NotNull(message = "终点纬度不能为空")
    @DecimalMin(value = "-90", message = "纬度不能小于-90")
    @DecimalMax(value = "90", message = "纬度不能大于90")
    private BigDecimal endLatitude;
}
